package v1version1;

import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;

/*版本一--封装【拓展】
* Mysql工具类
* 1.数据库：地址，用户名，密码   私有属性-静态化【本类直接调用】
* 2.静态方法【本类直接调用】getParam（string 路径）
* 目的使用方法调用外部文件 db——mysql。properties读取健值对信息
* Properties类 提供方法 load（）读取配置文件信息【【健值对-数据库基本信息】
* 3.通过封装概念--链接成功数据【通用一个类链接Mysql和Oracle】
* */
public class Mysql {
    //1.任何数据库具备：地址，用户名，密码
    private static String url;
    private static String username;
    private static String password;
    //2.静态方法：getParam（String 路径）--链接数据库--读取信息
    //2.1配置文件：健值对出现保存数据库对应的基本信息

    public static void getParam(String fileName) throws IOException {
        //2.2Propertise类--读取
        Properties p=new Properties();
        //2.3外置文件读取--借助IO--搬运数据--InputStream
        //Mysql。class表示当前Mysql类的class对象
        //getClassLoader() 读取当前类的加载器【加载器负责读取配置文件信息】
        //getResourceAsStream（）获取当前加载器中健值对信息
        //理解：图书馆--区域存Mysql相关书籍--图书管理员--拿明确书籍
        InputStream fis=
                Mysql.class.getClassLoader().getResourceAsStream(fileName);
        p.load(fis);
        //2.4读取数据库基本信息【url，用户，密码】赋值给当前对象【url，用户，
        //读取数据库提供方法
        url=p.getProperty("url");
                username=p.getProperty("username");

                        password=p.getProperty("password");
        System.out.println("测试链接成功："+url+username+password);
    }

    public static void main(String[] args) throws IOException, SQLException {
        //测试封装概念--链接成功数据库
        Mysql.getParam("db_mysql.properties");
        //参加Mysql----book表--增加一条记录操作
        //链接成功Mysql-------book表---增加一条记录操作
        //1.创建链接
        Connection con=DriverManager.getConnection(url,username,password);
        //2.执行sql
        Statement st=con.createStatement();
        //3.[CRUD操作：增删改 executeUpdate（） 查executeQuery】
        String sql="insert into book values(6,'余华','活着','79','2010年','80','否')";
        int rows=st.executeUpdate(sql);
        System.out.println("成功添加了："+rows+"一条记录");
        //4.关闭链接-Statement--Connection
st.close(); con.close();
    }
}
